package com.anssy.voteballot.http;


import java.util.Map;

import okhttp3.MultipartBody;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;

public interface HttpService {


    /**
     * 会议信息
     *
     * @param PadSn
     * @return
     */
    @FormUrlEncoded
    @POST("Handler/GetUsedMeetting.ashx")
    Call<ResponseBody> getContent(@Field("PadSn") String PadSn);


    /**
     * 签到
     *
     * @param PadSn
     * @param MeettingId
     * @param SignSet
     * @return
     */
    @FormUrlEncoded
    @POST("Handler/SignIn.ashx")
    Call<ResponseBody> signIn(@Field("PadSn") String PadSn, @Field("MeettingId") int MeettingId, @Field("SignSet") String SignSet);


    /**
     * 是否签到
     *
     * @param PadSn
     * @param MeettingId
     * @return
     */
    @FormUrlEncoded
    @POST("Handler/GetUserIsSigned.ashx")
    Call<ResponseBody> getSignStatus(@Field("PadSn") String PadSn, @Field("MeettingId") int MeettingId);

    /**
     * 议题列表
     *
     * @param PadSn
     * @param MeettingId
     * @return
     */
    @FormUrlEncoded
    @POST("Handler/GetMeettingSublist.ashx")
    Call<ResponseBody> getSubList(@Field("PadSn") String PadSn, @Field("MeettingId") int MeettingId);

    /**
     * 获取议题
     *
     * @param MeettingSubId
     * @param PadSn
     * @return
     */
    @FormUrlEncoded
    @POST("Handler/GetOptionSet.ashx")
    Call<ResponseBody> getOptions(@Field("MeettingSubId") int MeettingSubId, @Field("PadSn") String PadSn);

    /**
     * 投票
     *
     * @param PadSn
     * @param MeettingSubId
     * @param OptionSetIds
     * @return
     */
    @FormUrlEncoded
    @POST("Handler/VoteSubmit.ashx")
    Call<ResponseBody> submitVote(@Field("PadSn") String PadSn, @Field("MeettingSubId") int MeettingSubId, @Field("OptionSetIds") String OptionSetIds);


    /**
     * 绑定极光ID
     *
     * @param PadSn
     * @param JiguangId
     * @return
     */
    @FormUrlEncoded
    @POST("Handler/AuroraBindingDevice.ashx")
    Call<ResponseBody> bindJgId(@Field("PadSn") String PadSn, @Field("JiguangId") String JiguangId);

    /**
     * 获取验证码
     *
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuAuth/getCode")
    Call<ResponseBody> getCode(@Field("phoneNumber") String phoneNumber, @Field("type") String type);


    /**
     * 发起表决关闭表决
     *
     * @param PadSn
     * @param MeettingId
     * @param MeettingSubId
     * @param ShiChang
     * @param Zhuangtai
     * @return
     */
    @FormUrlEncoded
    @POST("Handler/SetMeettingSubStartVote.ashx")
    Call<ResponseBody> configVote(@Field("PadSn") String PadSn, @Field("MeettingId") int MeettingId, @Field("MeettingSubId") int MeettingSubId, @Field("ShiChang") String ShiChang
            , @Field("Zhuangtai") String Zhuangtai);

    /**
     * 注册
     *
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuAuth/toRegister")
    Call<ResponseBody> toRegister(@Field("phoneNumber") String phoneNumber, @Field("passStr") String passStr, @Field("code") String code
            , @Field("region") long region);


    /**
     * 登录
     *
     * @param fields
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuAuth/toLogin")
    Call<ResponseBody> toLogin(@FieldMap Map<String, Object> fields);

    /**
     * 在售课程列表
     *
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/querySellCourseList")
    Call<ResponseBody> getSellCourseList(@FieldMap Map<String, Object> map);

    /**
     * 查询科目和年级列表
     *
     * @return
     */
    @POST("api/stuAuth/querySubjectAndGradeList")
    Call<ResponseBody> getSubjectGradeList();

    /**
     * 查询体验课程
     *
     * @param subjectVal
     * @param grade
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuAuth/queryFreeCourseList")
    Call<ResponseBody> getFreeCourse(@Field("subjectVal") String subjectVal, @Field("grade") String grade);

    /**
     * 首页轮播
     *
     * @return
     */
    @POST("api/data/queryCarouselList")
    Call<ResponseBody> getBannerList();


    @POST("api/data/querySetInfo")
    Call<ResponseBody> getAboutUs();

    /**
     * 查询用户信息
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuAuth/selectStudentByToken")
    Call<ResponseBody> getUserInfo(@Field("loginToken") String loginToken);

    /**
     * 课程详情
     *
     * @param loginToken
     * @param sellId
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/selectCourseMarkById")
    Call<ResponseBody> getSellCourseDetail(@Field("loginToken") String loginToken, @Field("sellId") String sellId);

    /**
     * 下单
     *
     * @param loginToken
     * @param sellStr
     * @param totalPrice
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/toOrder")
    Call<ResponseBody> toOrder(@Field("loginToken") String loginToken, @Field("sellStr") String sellStr, @Field("totalPrice") String totalPrice, @Field("carIds") String carIds);


    /**
     * 去支付
     *
     * @param loginToken
     * @param orderId
     * @param payType
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/toPay")
    Call<ResponseBody> toPay(@Field("loginToken") String loginToken, @Field("orderId") String orderId, @Field("payType") String payType);

    /**
     * 添加购物车
     *
     * @param loginToken
     * @param sellId
     * @param courseId
     * @param specificId
     * @param proNum
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/addCar")
    Call<ResponseBody> addShoppingCar(@Field("loginToken") String loginToken, @Field("sellId") int sellId, @Field("courseId") int courseId
            , @Field("specificId") int specificId, @Field("proNum") String proNum);

    /**
     * 删除购物车
     *
     * @param carId
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/deleteCarInfoById")
    Call<ResponseBody> deleteShoppingCar(@Field("carId") String carId);


    /**
     * 综合考试错题列表
     *
     * @param loginToken
     * @param pageNum
     * @param pageSize
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/queryDoneExamList")
    Call<ResponseBody> getErrorList(@Field("loginToken") String loginToken, @Field("pageNum") int pageNum, @Field("pageSize") int pageSize);

    /**
     * 综合考试错题详情
     *
     * @param loginToken
     * @param resultId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/queryDoneExamDetail")
    Call<ResponseBody> getErrorDetail(@Field("loginToken") String loginToken, @Field("resultId") int resultId);

    /**
     * 购物车列表
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/selectCarInfoList")
    Call<ResponseBody> getShoppingCarList(@Field("loginToken") String loginToken);

    /**
     * 获取订单列表
     *
     * @param loginToken
     * @param orderStatus
     * @param pageNum
     * @param pageSize
     * @return
     */
    @FormUrlEncoded
    @POST("api/order/selectMyOrderList")
    Call<ResponseBody> getOrderList(@Field("loginToken") String loginToken, @Field("orderStatus") String orderStatus,
                                    @Field("pageNum") String pageNum, @Field("pageSize") String pageSize);

    /**
     * 商品加入收藏
     *
     * @param loginToken
     * @param sellId
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/toCollect")
    Call<ResponseBody> toCollection(@Field("loginToken") String loginToken, @Field("sellId") String sellId);

    /**
     * 取消收藏
     *
     * @param collectId
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/cancelCollect")
    Call<ResponseBody> cancelCollection(@Field("collectId") String collectId);

    /**
     * 收藏列表
     *
     * @param loginToken
     * @param pageNum
     * @param pageSize
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/myCollectList")
    Call<ResponseBody> getCollectionList(@Field("loginToken") String loginToken, @Field("pageNum") String pageNum, @Field("pageSize") String pageSize);

    @FormUrlEncoded
    @POST("api/mall/selectMyOrderList")
    Call<ResponseBody> getCourseOrderList(@FieldMap Map<String, Object> map);


    /**
     * 结算界面
     *
     * @param loginToken
     * @param orderId
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/selectOrderById")
    Call<ResponseBody> getConfirmOrder(@Field("loginToken") String loginToken, @Field("orderId") int orderId);

    /**
     * 去支付
     *
     * @param loginToken
     * @param orderId
     * @param payType
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/toPay")
    Call<ResponseBody> toPay(@Field("loginToken") String loginToken, @Field("orderId") int orderId, @Field("payType") String payType);

    /**
     * 学生当前课程查询
     *
     * @param loginToken
     * @param type
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/queryNowCourseByType")
    Call<ResponseBody> getCurrentCourse(@Field("loginToken") String loginToken, @Field("type") String type);


    /*    *//**
     * 获取课程模块
     *
     * @param courseId
     * @return
     *//*
    @FormUrlEncoded
    @POST("api/study/queryDataListByCourseId")
    Call<ResponseBody> getCategoryData(@Field("courseId") int courseId, @Field("type") String type);*/

    /**
     * 获取课程模块
     *
     * @param courseId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/queryStudyModels")
    Call<ResponseBody> getCategoryData(@Field("courseId") int courseId, @Field("loginToken") String loginToken);

    /**
     * 课次列表
     *
     * @param courseId
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuCourse/queryHourListByCourseId")
    Call<ResponseBody> getClassTime(@Field("courseId") int courseId);


    /**
     * 反馈详情
     *
     * @param loginToken
     * @param courseCommentId
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuCourse/myFeedBackDetail")
    Call<ResponseBody> getFeedBackDetail(@Field("loginToken") String loginToken, @Field("courseCommentId") int courseCommentId);

    @FormUrlEncoded
    @POST("api/stuCourse/submitMyFeedBack")
    Call<ResponseBody> submitFeedBack(@FieldMap Map<String, Object> map);

    /**
     * 本课出勤
     *
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuCourse/myAttendByHourId")
    Call<ResponseBody> getCheckWorkList(@Field("loginToken") String loginToken, @Field("hourId") int hourId);

    /**
     * 学习资源
     *
     * @param courseCommentId
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuCourse/selectHourCommentResource")
    Call<ResponseBody> getResourceList(@Field("courseCommentId") int courseCommentId);

    /**
     * 本课作业
     *
     * @param loginToken
     * @param hourId
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuCourse/queryWorkDescByCourseId")
    Call<ResponseBody> getTaskList(@Field("loginToken") String loginToken, @Field("hourId") int hourId);

    /**
     * 我的积分
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/point/queryMyPoint")
    Call<ResponseBody> getMyPointList(@Field("loginToken") String loginToken);


    /**
     * 作业详情
     *
     * @param loginToken
     * @param recordId
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuCourse/queryMyWorkDetail")
    Call<ResponseBody> getTaskDetail(@Field("loginToken") String loginToken, @Field("recordId") int recordId);

    /**
     * 提交作业
     *
     * @param fieldMap
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuCourse/submitWork")
    Call<ResponseBody> submitTask(@FieldMap Map<String, Object> fieldMap);

    /**
     * 我的团队
     *
     * @return
     */
    @FormUrlEncoded
    @POST("api/tg/center/queryAgentTeam")
    Call<ResponseBody> getTeamList(@FieldMap Map<String, Object> fieldMap);

    /**
     * 我的团队搜索
     *
     * @param loginToken
     * @param searchText
     * @return
     */
    @FormUrlEncoded
    @POST("api/tg/center/queryTeamBySearch")
    Call<ResponseBody> searchTeam(@Field("loginToken") String loginToken, @Field("searchText") String searchText);

    /**
     * 佣金明细
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/tg/center/queryProfitMain")
    Call<ResponseBody> commissionDetail(@Field("loginToken") String loginToken);

    /**
     * 佣金明细详情
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/tg/center/queryProfitDetail")
    Call<ResponseBody> commissionDetailInfo(@Field("loginToken") String loginToken);


    /**
     * 我的U币
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/ub/mine/queryMineUb")
    Call<ResponseBody> getMineUB(@Field("loginToken") String loginToken);

    /**
     * 我能兑换
     *
     * @return
     */
    @FormUrlEncoded
    @POST("api/ub/mine/queryCanExchangePro")
    Call<ResponseBody> getCanExchangeData(@FieldMap Map<String, Object> map);


    /**
     * 立即兑换
     *
     * @param loginToken
     * @param proId
     * @return
     */
    @FormUrlEncoded
    @POST("api/ub/mine/addExchange")
    Call<ResponseBody> toExchange(@Field("loginToken") String loginToken, @Field("proId") int proId);


    /**
     * 签到首页
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/sign/querySignInitData")
    Call<ResponseBody> singHomeData(@Field("loginToken") String loginToken);

    /**
     * 佣金我的订单
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/tg/center/queryMyTgOrders")
    Call<ResponseBody> getCommissionOrder(@Field("loginToken") String loginToken);


    /**
     * 今日签到排行
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/sign/queryTodaySignRank")
    Call<ResponseBody> getSignTodayRank(@Field("loginToken") String loginToken);

    /**
     * 签到总排行
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/sign/queryTotalSignRank")
    Call<ResponseBody> getSignTotalRank(@Field("loginToken") String loginToken);


    /**
     * 签到规则
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/sign/querySignRule")
    Call<ResponseBody> getSignRule(@Field("loginToken") String loginToken);

    /**
     * 立即签到
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/sign/addSign")
    Call<ResponseBody> addSign(@Field("loginToken") String loginToken);

    @FormUrlEncoded
    @POST("api/study/entryZYModel")
    Call<ResponseBody> getTemplateDetail(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("dataVal") String dataVal
    );

    @FormUrlEncoded
    @POST("api/study/entryZYModel")
    Call<ResponseBody> getTemplateDetailByHourId(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("dataVal") String dataVal
            , @Field("hourId") int hourId);

    /**
     * U币销量排行
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/ub/mine/queryProExchangeRankList")
    Call<ResponseBody> getExchangeRankList(@Field("loginToken") String loginToken);


    /**
     * 兑换记录
     *
     * @param loginToken
     * @param pageNum
     * @param pageSize
     * @return
     */
    @FormUrlEncoded
    @POST("api/ub/mine/queryExchangeRecordList")
    Call<ResponseBody> ExchangeRecordList(@Field("loginToken") String loginToken, @Field("pageNum") int pageNum, @Field("pageSize") int pageSize);


    /**
     * 获取课程封面
     *
     * @param courseId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/queryCourseById")
    Call<ResponseBody> getCover(@Field("courseId") int courseId);

    /**
     * 关联组合列表
     *
     * @param loginToken
     * @param courseId
     * @param dataVal
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/selectResourceComposeList")
    Call<ResponseBody> selectComposeList(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("dataVal") String dataVal);

    /**
     * 关联组合列表
     *
     * @param loginToken
     * @param courseId
     * @param dataVal
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/queryComposeNamesByCid")
    Call<ResponseBody> selectNewComposeList(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("dataVal") String dataVal);


    @FormUrlEncoded
    @POST("api/study/queryHoursByCid")
    Call<ResponseBody> getSpinnerList(@Field("courseId") int courseId, @Field("dataVal") String dataVal);

    /**
     * 资源组合题型
     *
     * @param composeId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/queryResourceTMStyle")
    Call<ResponseBody> getDiffTaskList(@Field("composeId") int composeId);


    /**
     * 配套练习模板
     *
     * @param contentId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/queryRespectivePractise")
    Call<ResponseBody> getPractiseCategory(@Field("contentId") int contentId);


    /**
     * 配套练习题目列表
     *
     * @param contentId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/queryPractiseTemDetail")
    Call<ResponseBody> getPractiseList(@Field("contentId") int contentId, @Field("resourceType") String resourceType);

    /**
     * 兑换列表
     *
     * @param loginToken
     * @param pointId
     * @return
     */
    @FormUrlEncoded
    @POST("api/point/queryPointExchangeList")
    Call<ResponseBody> getExchangeList(@Field("loginToken") String loginToken, @Field("pointId") int pointId);

    /**
     * 公共跳转联系模板 大于8
     *
     * @param keyId
     * @param type
     * @returnf
     */
    @FormUrlEncoded
    @POST("api/study/forwardLearnMould")
    Call<ResponseBody> getComposeList(@Field("loginToken") String loginToken, @Field("keyId") int keyId, @Field("type") String type);

    /**
     * 公共跳转联系模板 大于8
     *
     * @param keyId
     * @param type
     * @returnf
     */
    @FormUrlEncoded
    @POST("api/study/forwardLearnMould")
    Call<ResponseBody> getNewComposeList(@Field("loginToken") String loginToken, @Field("keyId") int keyId, @Field("type") String type, @Field("targetId") int targetId, @Field("flag") String flag);

    /**
     * 公共跳转联系模板 对错题
     *
     * @param keyId
     * @param type
     * @returnf
     */
    @FormUrlEncoded
    @POST("api/study/forwardLearnMould")
    Call<ResponseBody> getPractiseCollectionList(@Field("loginToken") String loginToken, @Field("keyId") int keyId, @Field("type") String type, @Field("targetId") int targetId, @Field("flag") String flag);


    /**
     * 资源组合题目
     *
     * @param loginToken
     * @param resourceId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/queryDetailByResourceId")
    Call<ResponseBody> getResourceLists(@Field("loginToken") String loginToken, @Field("resourceId") int resourceId);

    @FormUrlEncoded
    @POST("api/study/entryLXInfo")
    Call<ResponseBody> getNewResourceLists(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("dataVal") String dataVal
            , @Field("composeId") int composeId, @Field("resourceType") String resourceType);

    /**
     * 我的课程列表选择
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuCourse/queryMyCourseList")
    Call<ResponseBody> getMyCourseList(@Field("loginToken") String loginToken);

    /**
     * 我的课程列表选择
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuCourse/queryMyCourseList")
    Call<ResponseBody> getMyCourseListById(@Field("loginToken") String loginToken, @Field("subjectVal") String subjectVal);

    /**
     * 视频、绘本阅读详情
     *
     * @param contentId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/selectContentInfoById")
    Call<ResponseBody> getVideoDetail(@Field("contentId") int contentId);

    /**
     * 词汇强化详情
     *
     * @param courseId
     * @param resourceType
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/entryWordsPractise")
    Call<ResponseBody> getStrengthenList(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("resourceType") String resourceType);


    /**
     * 筛选年度
     *
     * @return
     */
    @POST("api/study/selectYearList")
    Call<ResponseBody> getSelectYearList();

    /**
     * 筛选年度新
     *
     * @param loginToken
     * @param subjectVal
     * @param grade
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/selectYearList")
    Call<ResponseBody> getNewSelectYearList(@Field("loginToken") String loginToken, @Field("subjectVal") String subjectVal, @Field("grade") String grade);

    @FormUrlEncoded
    @POST("api/study/selectYouLianCourseList")
    Call<ResponseBody> getSelectMyCourseList(@Field("loginToken") String loginToken, @Field("subjectVal") String subjectVal, @Field("grade") String grade
            , @Field("year") String year);

    @FormUrlEncoded
    @POST("api/study/usableCourseListByType")
    Call<ResponseBody> getSelectMyCourseNewList(@Field("loginToken") String loginToken, @Field("type") String type, @Field("subjectVal") String subjectVal, @Field("grade") String grade
            , @Field("year") String year, @Field("version") String version);

    /**
     * 获取教材列表
     *
     * @param loginToken
     * @param subjectVal
     * @param grade
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/selectVersionList")
    Call<ResponseBody> getVersionList(@Field("loginToken") String loginToken, @Field("subjectVal") String subjectVal, @Field("grade") String grade);

    /**
     * 一级知识点获取
     *
     * @param subjectValue
     * @return
     */
    @FormUrlEncoded
    @POST("api/knowledgePoints/queryKnowledgePointsBySubject")
    Call<ResponseBody> getKnowledgePoints(@Field("subjectValue") String subjectValue);

    /**
     * 收藏资源
     *
     * @param loginToken
     * @param subjectVal
     * @param targetId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/myCollectTemplet")
    Call<ResponseBody> getCollectionResource(@Field("loginToken") String loginToken, @Field("subjectVal") String subjectVal, @Field("targetId") int targetId);

    /**
     * 资源收藏题目详情
     *
     * @param loginToken
     * @param templeteVal
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/entryCollectList")
    Call<ResponseBody> getCollectionResourceDetail(@Field("loginToken") String loginToken, @Field("templeteVal") String templeteVal);

    /**
     * 地区我的排名
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuAuth/myRankByRegion")
    Call<ResponseBody> getMyRankData(@Field("loginToken") String loginToken);

    /**
     * 地区所有人排名
     *
     * @param loginToken
     * @param pageSize
     * @param pageNum
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuAuth/queryRankListByRegion")
    Call<ResponseBody> getRankList(@Field("loginToken") String loginToken, @Field("pageNum") int pageNum, @Field("pageSize") int pageSize);

    /**
     * 课程/班级排名我的排名位置
     *
     * @param loginToken
     * @param courseId
     * @param type
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuAuth/myRankByCourse")
    Call<ResponseBody> getMyRankDataByCourseId(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("type") String type);

    /**
     * 课程/班级 所有排名
     *
     * @param loginToken
     * @param courseId
     * @param type
     * @param pageSize
     * @param pageNum
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuAuth/queryRankListByCourse")
    Call<ResponseBody> getRankListByCourseId(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("type") String type
            , @Field("pageNum") int pageNum, @Field("pageSize") int pageSize);

    /**
     * 学习目标图谱
     *
     * @param loginToken
     * @param courseId
     * @return
     */
    @FormUrlEncoded
    @POST("api/point/queryMyCourseTargetMaster")
    Call<ResponseBody> getLearningObjectives(@Field("loginToken") String loginToken, @Field("courseId") int courseId);


    /**
     * 获取AccessToken
     *
     * @param appid
     * @param secret
     * @param code
     * @param grant_type
     * @return
     */
    @GET("sns/oauth2/access_token")
    Call<ResponseBody> getAccessToken(@Query("appid") String appid, @Query("secret") String secret
            , @Query("code") String code, @Query("grant_type") String grant_type);


    /**
     * 绑定OPENID
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/tg/center/bindOpenId")
    Call<ResponseBody> bindOpenId(@Field("loginToken") String loginToken, @Field("openid") String openid);

    /**
     * 提现到零钱
     *
     * @param loginToken
     * @param money
     * @return
     */
    @FormUrlEncoded
    @POST("api/tg/center/toPickWeChat")
    Call<ResponseBody> withdrawal(@Field("loginToken") String loginToken, @Field("money") String money);


    /**
     * 练习集概括
     *
     * @param loginToken
     * @param courseId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/myPracticeCensus")
    Call<ResponseBody> getPractiseCollection(@Field("loginToken") String loginToken, @Field("courseId") int courseId);

    /**
     * 多错题集列表
     *
     * @param loginToken
     * @param flag
     * @param courseId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/myExerciseTargetByFlag")
    Call<ResponseBody> getWrongQuestions(@Field("loginToken") String loginToken, @Field("flag") String flag, @Field("courseId") int courseId);

    /**
     * 词汇进阶列表
     *
     * @param stuId
     * @return
     */
    @FormUrlEncoded
    @POST("api/knowledgePoints/getVocabularyInfos")
    Call<ResponseBody> getAdvancedList(@Field("stuId") int stuId, @Field("courseId") int courseId);

    /**
     * 词汇进阶详情
     *
     * @param stuId
     * @param suitGrade
     * @return
     */
    @FormUrlEncoded
    @POST("api/knowledgePoints/getVocabularyWordInfos")
    Call<ResponseBody> getAdvancedDetail(@Field("stuId") int stuId, @Field("suitGrade") String suitGrade, @Field("courseId") int courseId);


    /**
     * 上传图片
     */
    @Multipart
    @POST("api/data/uploadManyFiles")
    Call<ResponseBody> uploadImg(@Part MultipartBody.Part imgPath);

    /**
     * 上传图片
     */
    @Multipart
    @POST("api/clockInCourse/toUploadFile")
    Call<ResponseBody> uploadFile(@Part MultipartBody.Part fileName1);

    /**
     * 上传音视频
     */
    @Multipart
    @POST("api/data/uploadMpFile")
    Call<ResponseBody> uploadVideo(@Part MultipartBody.Part file);


    /**
     * 朗读录音回显
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/readAloudEcho")
    Call<ResponseBody> getReadAudio(@Field("loginToken") String loginToken);

    /**
     * 修改用户信息
     */
    @FormUrlEncoded
    @POST("api/stuAuth/updateStudent")
    Call<ResponseBody> saveUserInfo(@FieldMap Map<String, Object> map);

    /**
     * 重置密码
     *
     * @param phoneNumber
     * @param passStr
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuAuth/changePassWord")
    Call<ResponseBody> resetPwd(@Field("phoneNumber") String phoneNumber, @Field("passStr") String passStr, @Field("code") String code);

    @FormUrlEncoded
    @POST("api/study/entryFlagPractiseList")
    Call<ResponseBody> getPractiseCollectionTemplateDetail(@Field("loginToken") String loginToken, @Field("recourceType") String recourceType
            , @Field("flag") String flag, @Field("targetId") int targetId, @Field("courseId") int courseId);

    //综合考试列表
    @FormUrlEncoded
    @POST("api/study/queryExamList")
    Call<ResponseBody> getExamList(@Field("loginToken") String loginToken, @Field("courseId") int courseId);

    /**
     * 综合考试题目
     */
    @FormUrlEncoded
    @POST("api/study/queryExamDetail")
    Call<ResponseBody> getExamDetail(@Field("loginToken") String loginToken, @Field("resultId") int resultId);

    /**
     * 领取免费课程
     *
     * @param stuId
     * @param realName
     * @param nowGrade
     * @param subjects
     * @param courseId
     * @param region
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuAuth/toPerfectInfo")
    Call<ResponseBody> submitFreeCourse(@Field("stuId") int stuId, @Field("realName") String realName, @Field("nowGrade") String nowGrade, @Field("subjects") String subjects
            , @Field("courseId") int courseId, @Field("region") int region);

    /**
     * 提交练习题
     *
     * @param loginToken
     * @param courseId
     * @param practiseId
     * @param templateVal
     * @param duration
     * @param answerFlag
     * @param origin
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/insertStuQuestionRecord")
    Call<ResponseBody> submitPractise(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("practiseId") int practiseId
            , @Field("templateVal") String templateVal, @Field("duration") int duration, @Field("answerFlag") String answerFlag, @Field("origin") String origin
    );

    @FormUrlEncoded
    @POST("api/study/insertStuQuestionRecord")
    Call<ResponseBody> submitAudioPractise(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("practiseId") int practiseId
            , @Field("templateVal") String templateVal, @Field("duration") int duration, @Field("answerFlag") String answerFlag, @Field("origin") String origin
            , @Field("text2") String text2);

    /**
     * 记录答题时长
     *
     * @param loginToken
     * @param courseId
     * @param dataVal
     * @param contentId
     * @param duration
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/insertStuDataRecord")
    Call<ResponseBody> insertDataRecord(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("dataVal") String dataVal
            , @Field("contentId") int contentId, @Field("duration") int duration);

    @FormUrlEncoded
    @POST("api/study/toCollectPractise")
    Call<ResponseBody> toCollectionPractise(@Field("loginToken") String loginToken, @Field("practiseId") int practiseId);

    @FormUrlEncoded
    @POST("api/study/cancelCollectPractise")
    Call<ResponseBody> cancelCollectionPractise(@Field("collectId") String collectId);

    /**
     * 查看是否收藏
     *
     * @param loginToken
     * @param practiseId
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/checkIsCollectPractise")
    Call<ResponseBody> checkCollection(@Field("loginToken") String loginToken, @Field("practiseId") int practiseId);

    @FormUrlEncoded
    @POST("api/study/entryPractise")
    Call<ResponseBody> enterPractise(@Field("loginToken") String loginToken, @Field("resultId") int resultId, @Field("practiseId") String practiseId
            , @Field("templateVal") String templateVal, @Field("serialNum") int serialNum);


    @FormUrlEncoded
    @POST("api/study/submitPractise")
    Call<ResponseBody> submitPractises(@Field("loginToken") String loginToken, @Field("recordId") int recordId, @Field("isEnd") String isEnd
            , @Field("points") String points, @Field("flag") String flag, @Field("writeText") String writeText);


    /**
     * 一分钟了解
     *
     * @param loginToken
     * @return
     */
    @FormUrlEncoded
    @POST("api/study/queryLearnOfOneMinute")
    Call<ResponseBody> getOneMinuteData(@Field("loginToken") String loginToken);


    /**
     * 每日任务
     *
     * @param stuId
     * @param date
     * @return
     */
    @FormUrlEncoded
    @POST("api/clockInCourse/queryClockInCourseInfosByToDay")
    Call<ResponseBody> getEveryDayTask(@Field("stuId") int stuId, @Field("date") String date);


    /**
     * 我参加的
     *
     * @param stuId
     * @return
     */
    @FormUrlEncoded
    @POST("api/clockInCourse/queryForParticipateList")
    Call<ResponseBody> getMyJoinedData(@Field("stuId") int stuId);

    /**
     * 主题列表
     *
     * @param clockInCourseId 打卡课程ID
     * @return
     */
    @FormUrlEncoded
    @POST("api/clockInCourse/queryTopicsInfos")
    Call<ResponseBody> getTopicsInfo(@Field("clockInCourseId") int clockInCourseId);


    /**
     * 主题详情
     *
     * @param topicsId 主题ID
     * @return
     */
    @FormUrlEncoded
    @POST("api/clockInCourse/queryTopicsInfoByTopicsId")
    Call<ResponseBody> getTopicsInfoDetail(@Field("topicsId") int topicsId);

    /**
     * 提交作业内容
     *
     * @param fileMap
     * @return
     */
    @FormUrlEncoded
    @POST("api/clockInCourse/toCommitClockContent")
    Call<ResponseBody> commitTask(@FieldMap Map<String, Object> fileMap);


    /**
     * 作业附件下载
     *
     * @param workId
     * @return
     */
    @FormUrlEncoded
    @POST("api/stuCourse/uploadWorkFiles")
    Call<ResponseBody> getDownloadFile(@Field("workId") int workId);

    /**
     * 打卡任务列表
     *
     * @param stuId
     * @param clockInCourseId
     * @return
     */
    @FormUrlEncoded
    @POST("api/clockInCourse/queryForParticipateListByClockCourseId")
    Call<ResponseBody> getPunchTaskList(@Field("stuId") int stuId, @Field("clockInCourseId") String clockInCourseId);

    /**
     * 分享预存信息
     *
     * @param loginToken
     * @param courseId
     * @param userId
     * @return
     */
    @FormUrlEncoded
    @POST("api/mall/saveCourseTgInfo")
    Call<ResponseBody> saveShareInfo(@Field("loginToken") String loginToken, @Field("courseId") int courseId, @Field("userId") int userId);
}